package pe.gob.osce.sirenas.dao.convert;


import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import pe.gob.osce.sirenas.model.PersonaDTO;
import pe.gob.osce.sirenas.model.jpa.Auditoria;
import pe.gob.osce.sirenas.model.jpa.Persona;
import pe.gob.osce.sirenas.model.jpa.rectificaciones.HistorialPersona;

public class PersonaConvert {
	
	private PersonaConvert(){}
	
	/**
	 * @param personaDTO
	 * @return
	 */
	public static Persona createJPA(PersonaDTO personaDTO, Auditoria auditoria) {
		Persona objetoJPA= new Persona();
		
		objetoJPA.setIdPersona(personaDTO.getIdPersona());
		objetoJPA.setApPaterno(personaDTO.getApPaterno());
		objetoJPA.setApMaterno(personaDTO.getApMaterno());
		objetoJPA.setNombres(personaDTO.getNombres());
		objetoJPA.setIndGenero(personaDTO.getIndGenero());
		objetoJPA.setFecNacimiento(personaDTO.getFecNacimiento());
		objetoJPA.setIndTipoDocumento(personaDTO.getIndTipoDocumento());
		objetoJPA.setNumDocumento(personaDTO.getNumDocumento());
		objetoJPA.setNumRuc(personaDTO.getNumRuc());
		
		objetoJPA.setNomFoto(personaDTO.getNomFoto());
		objetoJPA.setFecFoto(personaDTO.getFecFoto());
		objetoJPA.setEstado(personaDTO.getEstado());
		objetoJPA.setCodTramite(personaDTO.getCodTramite());
		objetoJPA.setAuditoria(auditoria);

		
		return objetoJPA;
		
		
		
	}

	public static PersonaDTO createDTO(Persona obJPA) {
		PersonaDTO objetoDTO= new PersonaDTO();
		
		objetoDTO.setIdPersona(obJPA.getIdPersona());
		objetoDTO.setApPaterno(obJPA.getApPaterno());
		objetoDTO.setApMaterno(obJPA.getApMaterno());
		objetoDTO.setNombres(obJPA.getNombres());		
		objetoDTO.setIndGenero(obJPA.getIndGenero());
		objetoDTO.setFecNacimiento(obJPA.getFecNacimiento());
		objetoDTO.setIndTipoDocumento(obJPA.getIndTipoDocumento());
		objetoDTO.setNumDocumento(obJPA.getNumDocumento());
		objetoDTO.setNumRuc(obJPA.getNumRuc());
		
	
		objetoDTO.setNomFoto(obJPA.getNomFoto());
		objetoDTO.setFecFoto(obJPA.getFecFoto());
		objetoDTO.setCodTramite(obJPA.getCodTramite());
		objetoDTO.setEstado(obJPA.getEstado());
		
		return objetoDTO;
		
	}

	public static HistorialPersona createHistorialPersonaJPA(Persona personaJPA, Auditoria auditoria) {
		HistorialPersona objetoHistorialJPA= new HistorialPersona();		
		objetoHistorialJPA.setFecRectificacion(new Date());
		objetoHistorialJPA.setCodTramite(personaJPA.getCodTramite());
		objetoHistorialJPA.setIdPersona(personaJPA.getIdPersona());
		objetoHistorialJPA.setApPaterno(personaJPA.getApPaterno());
		objetoHistorialJPA.setApMaterno(personaJPA.getApMaterno());
		objetoHistorialJPA.setNombres(personaJPA.getNombres());
		objetoHistorialJPA.setIndGenero(personaJPA.getIndGenero());
		objetoHistorialJPA.setFecNacimiento(personaJPA.getFecNacimiento());
		objetoHistorialJPA.setIndTipoDocumento(personaJPA.getIndTipoDocumento());
		objetoHistorialJPA.setNumDocumento(personaJPA.getNumDocumento());
		objetoHistorialJPA.setNumRuc(personaJPA.getNumRuc());
		objetoHistorialJPA.setNomFoto(personaJPA.getNomFoto());
		objetoHistorialJPA.setFecFoto(personaJPA.getFecFoto());
		objetoHistorialJPA.setCodTramite(personaJPA.getCodTramite());
		objetoHistorialJPA.setEstado(personaJPA.getEstado());
		objetoHistorialJPA.setAuditoria(auditoria);

		
		return objetoHistorialJPA;
	}

	
	public static List<PersonaDTO> createListHistorialPersonaDTO(List<HistorialPersona> listaHistorialPersonaJPA){
		
		List<PersonaDTO> listaObjetoDTO=new ArrayList<PersonaDTO>();
		PersonaDTO objetoDTO;

		for (HistorialPersona historialPersonaJPA: listaHistorialPersonaJPA) {
			objetoDTO= new PersonaDTO();
			objetoDTO.setFecRectificacion(historialPersonaJPA.getFecRectificacion());
			objetoDTO.setIdPersona(historialPersonaJPA.getIdPersona());
			objetoDTO.setApPaterno(historialPersonaJPA.getApPaterno());
			objetoDTO.setApMaterno(historialPersonaJPA.getApMaterno());
			objetoDTO.setNombres(historialPersonaJPA.getNombres());		
			objetoDTO.setIndGenero(historialPersonaJPA.getIndGenero());
			objetoDTO.setFecNacimiento(historialPersonaJPA.getFecNacimiento());
			objetoDTO.setIndTipoDocumento(historialPersonaJPA.getIndTipoDocumento());
			objetoDTO.setNumDocumento(historialPersonaJPA.getNumDocumento());
			objetoDTO.setNumRuc(historialPersonaJPA.getNumRuc());
			
		
			objetoDTO.setNomFoto(historialPersonaJPA.getNomFoto());
			objetoDTO.setFecFoto(historialPersonaJPA.getFecFoto());
			objetoDTO.setCodTramite(historialPersonaJPA.getCodTramite());
			objetoDTO.setEstado(historialPersonaJPA.getEstado());
			listaObjetoDTO.add(objetoDTO);
		}
		
		return listaObjetoDTO;
	}
	
	
	
	
}
